package com.xjc.system.utils;

import org.mindrot.jbcrypt.BCrypt;

/**
 * 徐锦程
 * 时间:2024-10-02 17:21
 * 描述:Bcrypt加密
 */
public class BcryptUtil {

    /**
     * 生成密码
     * @param plainTextPassword 明文
     * @return 密文
     */
    public static String hashPassword(String plainTextPassword) {
        // 设置工作因子（cost factor）
        int workFactor = 12;
        return BCrypt.hashpw(plainTextPassword, BCrypt.gensalt(workFactor));
    }

    /**
     * 比对密码
     * @param plainTextPassword 明文
     * @param hashedPassword 密文
     * @return true/false
     */
    public static boolean checkPassword(String plainTextPassword, String hashedPassword) {
        return BCrypt.checkpw(plainTextPassword, hashedPassword);
    }

    public static void main(String[] args) {
        System.out.println(hashPassword("admin"));
    }
}
